package com.ruicar.afs.cloud.common.modules.dto.mq.loan;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.ArrayList;

/**
 * <p>Description：放款申请提交信息</p>
 *
 * @author xueyu.ma
 * @version 1.1
 * @create 2020-6-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LoanApplySubmitInfo implements Serializable {

    /**
     * 申请编号
     */
    @JSONField(name = "applyNo")
    private String applyNo;

    /**
     * 合同号码
     */
    @JSONField(name = "contractNo")
    private String contractNo;

    /**
     * 申请状态
     */
    @JSONField(name = "applyStatus")
    private String applyStatus;

    /**
     * 操作命令
     */
    @JSONField(name = "oprType")
    private String oprType;

    /**
     * 流程类型
     */
    @JSONField(name = "processType")
    private String processType;

    /**
     * 流程信息
     */
    @JSONField(name = "workFlowDTO")
    WorkFlowDTO workFlowDTO;

    /**接口重新整理**/
    /**
     * 包含：合同基础信息
     * 客户证件信息 ArrayList<CertificateInfoDTO>
     * 银行卡信息 LoanBankCardInfoDTO
     * 车辆信息 ArrayList<CarInfoDTO>
     */
    @JSONField(name = "caseContractInfoDto")
    private CaseContractInfoDTO caseContractInfoDto;

    public CaseContractInfoDTO getCaseContractInfoDto() {
        this.caseContractInfoDto.setUserRealName(this.userRealName);
        this.caseContractInfoDto.setPhone(this.phone);
        return caseContractInfoDto;
    }

    /**
     * GPS申请信息
     */
    @JSONField(name = "carGpsApplyDtoList")
    private ArrayList<CarGpsApplyDTO> carGpsApplyDtoList;

    /**
     * 车辆保险信息
     */
    @JSONField(name = "carInsuranceInfoDtoList")
    private ArrayList<CarInsuranceInfoDTO> carInsuranceInfoDtoList;

    /**
     * 车辆发票信息
     */
    @JSONField(name = "carInvoiceInfoDTO")
    private CarInvoiceInfoDTO carInvoiceInfoDTO;

    /**
     * 银行卡信息
     */
    @JSONField(name = "loanBankCardInfoDtoList")
    private ArrayList<LoanBankCardInfoDTO> loanBankCardInfoDtoList;

    /**
     * 个体工商户挂靠信息
     */
    @JSONField(name = "privateAffiliatedUnitsDTO")
    private PersonalAffiliatedUnitsDTO personalAffiliatedUnitsDTO;

    /**
     * 客户证件信息
     */
    @JSONField(name = "certificateInfoDTOList")
    private ArrayList<CertificateInfoDTO> certificateInfoDTOList;

    /**
     * 增融成交价(含GPS、装潢及装潢明细、精品)
     */
    @JSONField(name = "addedFinancingItemsDTOList")
    private ArrayList<AddedFinancingItemsDTO> addedFinancingItemsDTOList;

    /**
     * 报单员真实姓名
     */
    @JSONField(name = "userRealName")
    private String userRealName;

    /**
     * 报单员手机号
     */
    @JSONField(name = "phone")
    private String phone;

    /**TODO 待补充特殊业务申请信息 **/
}
